pub fn retire_time(time: &str, tp: &str) -> String {
    let mut work_y = 60;
    let mut step = 4;
    let mut max = 36;
    let _gender = if tp == "男职工" {
        1
    }else{
        let year = tp.chars().filter(|c| c.is_numeric()).map(|n| n.to_string()).collect::<Vec<_>>().join("");
        work_y = year.parse::<u32>().unwrap();
        if work_y == 50 {
            step = 2;
            max = 60;
        }
        0
    };
    let birthday = time.split("-").collect::<Vec<_>>();
    let y = birthday[0].parse::<u32>().unwrap();
    let m:u32 = birthday[1].parse::<u32>().unwrap();
    
    if y + work_y < 2025 {
        return format!("{}-{:02},{},{}",y+work_y,m,work_y,0);
    }
    let total:u32 = (y + work_y - 2025) * 12 + m;
    let delay:u32 = if total.div_ceil(step) > max {
        max
    }else{
        total.div_ceil(step)
    };
    let mut retire_y = y + work_y + delay / 12;
    let mut retire_m = m + delay % 12;
    if retire_m > 12 {
        retire_y += 1;
        retire_m -= 12;
    }
    let date = format!("{}-{:02}",retire_y,retire_m);
    let age = (retire_y as f32 - y as f32) + ((retire_m as f32 - m as f32 ) / 12f32);
    format!("{},{},{}",date,(age*100.0).round()/100.0,delay)
}
